One type of prior nonvolatile memory is the flash erasable and electrically programmable read-only memory ("Flash EPROM"). The flash EPROM can be programmed by a user. Once programmed, the entire contents of the flash EPROM can be electrically erased. The flash EPROM may then be reprogrammed with new data.
Prior art personal computer systems typically employ removable data storage media. One common prior art removable storage medium is a floppy disk. A relatively new prior art storage medium is an integrated circuit-based memory card ("IC memory card").
Prior art flash EPROMs are nonvolatile and reprogrammable, and this has permitted the flash EPROM technology to be used for removable data storage. One such prior art application is the flash EPROM memory card ("flash memory card"). The flash memory card typically includes a number of flash EPROMs. The flash memory card can be erased and programmed electrically.
A prior art computer system that can receive a flash memory card typically includes an integrated circuit ("IC") card interface controller. The IC card controller is typically used in the prior art computer system to interface with the flash memory card. In addition, the IC card interface controller can also interface with other types of IC cards, such as a modem card and a LAN ("Local Area Network") card. When a flash memory card is connected to the prior art computer system, the IC card interface controller receives addresses, data, control signals, power, and ground from the computer system. The IC card interface controller in turn controls operations of the flash memory card.
Disadvantages are, however, associated with the prior IC card interface controller. One disadvantage associated is that the IC card interface controller cannot address all of the address locations of the flash memory card at any given time. Instead, the 16 card interface controller is only allowed to access a section (i.e., block) of the entire memory space of the flash memory card at any given time. The addresses of that section of the memory space of the flash memory card are maintained in a memory address mapping window in the IC card interface controller.
When a circuit of the computer system accesses the flash memory card with an address, the IC card interface controller first accesses the window to see if the address is within the window. If the window contains that address, it means that the current access to the flash memory card is to the section and the flash memory card can then be accessed. If the window does not contain that address, it means that a different section of the flash memory card is addressed and the window needs to be updated with the addresses of that different section of the flash memory card. In order to update the window with the addresses of that different section, many layers of software running on the computer system need to be invoked. This typically causes the update of the window to be relatively time consuming that in turn affects the speed of accessing the flash memory card.
Another disadvantage is that the window typically needs to be repeatedly updated during a read or write operation of the flash memory card. As is known, in a prior flash memory card, a block allocation structure is located in a bottom area of the card and a file control structure is located in a top area of the memory space of the card. During an access to the flash memory card, the two structures need to be accessed many times before a section of the flash memory card is actually accessed. This typically causes the window in the IC card interface controller to be repeatedly changed, which takes a significant amount of time and results in a performance penalty.